User Identified to a Controller

ABSTRACT

Methods, systems, and computer programs for configuring a computer program based on user are provided. One method includes an operation for detecting, by a controller, an object carried by a user, where the object includes a parameter value—e.g., a radio-frequency identification (RFID) tag—that uniquely identifies the object from a plurality of objects. The parameter value is transmitted to a computing device executing the computer program, and the computer program determines if the computer program has user information associated with the transmitted parameter value. The computer program is configured utilizing the user information, when the computer program has the user information for the parameter value.

BACKGROUND

1. Field of the Invention

The present invention relates to methods for calibrating a computergame, and more particularly, to methods and systems for identifying auser to a controller.

2. Description of the Related Art

A growing trend in the computer gaming industry is the development ofgames that increase the interaction between user and gaming system. Oneway of accomplishing a richer interactive experience is by utilizingwireless game controllers, whose movement is tracked by the gamingsystem. The movement of the controller is used as input for the game.Generally speaking, gesture input refers to the detection of a usergesture by an electronic device, e.g., computing system, video gameconsole, smart appliance, etc., utilizing a camera tracking the user'sspace.

Gaming systems that track wireless controllers often use calibrationoperations for estimating the playing area where the player operates, aswell as some of the player's physical characteristics. Calibration isimportant because, to offer a rewarding interactive experience, thegaming system must account for the dimensions of the player and theplaying area. For example, the range of motion for a child swinging avirtual baseball bat is much smaller than the range of motion for anadult swinging the virtual bat. The gaming system must accommodate bothplayers, so both can hit a home run.

In some games, such as golf, baseball, or bowling, two or more userstake turns playing the game and sharing a controller. In order tocalibrate the system properly, the calibration must be performed eachtime the controller changes hands. This is cumbersome and interfereswith the rapid start of play when a user begins a turn.

It is in this context that embodiments arise.

SUMMARY

Embodiments of the present invention provide methods, systems, andcomputer programs for configuring a computer program based on user. Itshould be appreciated that the present invention can be implemented innumerous ways, such as a process, an apparatus, a system, a device or amethod on a computer readable medium. Several inventive embodiments ofthe present invention are described below.

In one embodiment, a method includes an operation for detecting, by acontroller, an object carried by a user, where the object includes aparameter value—e.g., a radio-frequency identification (RFID) tag—thatuniquely identifies the object from a plurality of objects. Theparameter value is transmitted to a computing device executing thecomputer program, and the computer program determines if the computerprogram has user information associated with the transmitted parametervalue. The computer program is configured utilizing the userinformation, when the computer program has the user information for theparameter value.

In another embodiment, a method for configuring a computer program basedon user includes operations for reading, by a controller, a fingerprintof a user, and for transmitting the fingerprint to a computing deviceexecuting the computer program. Further, if the computer program hasuser information associated with the fingerprint, the computer programis configured utilizing the user information.

In yet another embodiment, a method for configuring a computer programbased on user is presented. The method includes an operation forentering a signature detection mode by the computer program. A signatureentered by the user is detected, the user entering the signature bymoving a controller. After exiting the signature detection mode, thecomputer program determines if the computer program has user informationassociated with the signature entered by the user. If the computerprogram has the user information for the signature entered by the user,a new calibration is set for the controller in the computer programbased on the user information.

In one embodiment, a controller, for configuring a computer programbased on user, includes a radio-frequency identification (RFID) reader,a memory, and a processor. The RFID reader is operable to detect an RFIDtag in an object carried by a user, with the RFID tag uniquelyidentifying the object from a plurality of objects. Further, theprocessor is operable to transmit the RFID tag to a computing deviceexecuting the computer program, where the computer program is operableto search for user information associated with the RFID tag. Inaddition, the computer program is configured utilizing the userinformation when the search obtains the user information associated withthe RFID tag.

Other aspects will become apparent from the following detaileddescription, taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings.

FIG. 1 shows two players taking turns playing a game, according to oneembodiment.

FIGS. 2A-2C illustrate an embodiment for calibrating a user to acontroller.

FIG. 3A shows a bracelet, having a Radio-Frequency IDentification(RFID), which identifies the user to a controller, according to oneembodiment.

FIG. 3B shows a bracelet with a clip for attaching the bracelet to acontroller, in accordance with one embodiment.

FIG. 4 shows a player holding two controllers and wearing two bracelets,according to one embodiment.

FIG. 5 illustrates the mapping of a user to a controller using signaturerecognition, according to one embodiment.

FIGS. 6A-6B show two embodiments for identifying a user by herfingerprint.

FIG. 7 illustrates user identification utilizing face recognition,according to one embodiment.

FIG. 8 shows the flowchart of an algorithm for identifying players usingRFID technology, in accordance with one embodiment of the invention.

FIG. 9 is a simplified schematic diagram of a computer system forimplementing embodiments of the present invention.

FIG. 10 shows the flowchart of an algorithm for configuring a computerprogram based on user, in accordance with one embodiment of theinvention.

FIG. 11 illustrates hardware and user interfaces that may be used toidentify users, in accordance with one embodiment of the presentinvention.

DETAILED DESCRIPTION

The following embodiments describe methods, apparatus, and computerprograms for configuring a computer program based on user. It will beapparent, that the present embodiments may be practiced without some orall of these specific details. In other instances, well known processoperations have not been described in detail in order not tounnecessarily obscure the present embodiments.

FIG. 1 shows two players taking turns playing a game, according to oneembodiment. Player 108 is playing a bowling game with game console 102and utilizing wireless controller 112. Camera 104 and game console 102implement a controller tracking system to follow the movement ofcontroller 112 in a three-dimensional space. As the user 108 movescontroller 112, camera 104 is taking images of the play area. Gameconsole 102 analyzes the captured images to track the movement ofcontroller 112. The controller tracking system may include otherelements, besides the camera, to track the controller motions, such asgyroscopes, magnetometers, accelerometers, ultrasound emitters andreceivers, light emitters, etc. It is noted that the embodimentillustrated in FIG. 1 is exemplary. Other embodiments may utilizedifferent tracking systems, and the embodiment illustrated shouldtherefore not be interpreted to be exclusive or limiting, but ratherexemplary or illustrative.

In the embodiment of FIG. 1, when user 108 is ready to play, the usermoves the controller in a circular motion next to his body to simulatethe throwing of a virtual bowling ball. The action in the virtualbowling game is shown on display 106. Oftentimes, two or moreplayers—such as players 108 and 110 in the embodiment of FIG. 1—play thegame by taking turns. At each turn, the player throws the virtualbowling ball and then passes controller 112 to the other player.

However, the controller tracking system needs to be calibrated for eachplayer. Since the game executing in console 102 does not know whichplayer is holding the controller, the calibration has to be performed ateach turn so the controller tracking system obtains data for thetracking, e.g., the location and size of the player. In one embodiment,the game performs a calibration operation for each player and thenassumes that the correct player is the one holding the controller at thecorresponding turn. However, this may become a problem if a playerdecides to let other player take a turn. For example, if a child wantsher father to throw the bowling ball for her, the tracking system mayproduce incorrect responses since the range of motion of a child can bemuch smaller than the range of motion of an adult.

Although the embodiment of FIG. 1 is described for a bowling game, turntaking may occur in other games, such as baseball, golf, puzzles, etc.,or in single-player games because the players decide to take turns.

Embodiments of the invention provide methods and systems to identify theuser that is holding a controller, allowing the game console to avoid orminimize the number of calibrations required to play the game whenmultiple users participate in the game. Once a user passes thecontroller to another user and the game recognizes the change, theparameters of the game, including calibration, are changed to match thecurrent user holding the controller.

FIGS. 2A-2C illustrate an embodiment for calibrating a user to acontroller. In general, the goal of calibration is to identify theplaying area where the user will be interacting with the game, and thephysical characteristics of the user, such as size, height, body center,etc. Some calibrations may capture additional information, such as ageand weight, used to configure parameters of the game, e.g., fitness,expected reaction times, user progress over time, language, etc.

It should be noted that calibration, as used herein, may refer to a setof parameters associated with a user for tracking motions of the user(i.e., a calibration of the user includes values for the user-relatedparameters used in tracking), or calibration may refer to the process bywhich the calibration parameters may be obtained. Typically, the initialcalibrating process performs certain calibrating operations (e.g., seeFIGS. 2A-2C) that initializes the calibration parameters for the user.As discussed below, in some embodiments, the calibration parameters maybe updated without requiring a new calibrating process by leveragingother types of information that identify the user or the playing area.

FIGS. 2A-2C shows the three stages of a three-stage calibration. In thefirst stage shown in FIG. 2A, user 202 holds controller 204 upwards nextto the user's face, with the arm held in a vertical position 206 and theelbow bent. In the second stage shown in FIG. 2B, user 202 holdscontroller 204 downwards next to the user's body, with the arm held invertical position 208 and a straight elbow. In the third stage shown inFIG. 2C, user 202 holds controller 204 at his waist, approximately atthe center of the body, with the arm in horizontal position 210 and theelbow bent towards the body.

Using the image capture device, the game console determines the threepositions of the controller at the three stages. The three positions forthe ball in the controller form triangle 212, which is used by thecomputer program to determine the user's size, which includes, in oneembodiment, the height and center of the user.

It is noted that the calibration illustrated in FIGS. 2A-2C isexemplary, and other calibrations may utilize different user motions anddifferent number of stages. The embodiment illustrated in FIGS. 2A-2Cshould therefore not be interpreted to be exclusive or limiting, butrather exemplary or illustrative.

In another embodiment, a simplified calibration may follow thecalibration described above. For example, a player may perform thethree-stage calibration at the beginning of the game, and later in thegame, when another user passes the controller, the game may do a simpleone-stage calibration by placing the controller as shown in FIG. 2A, orby using a two-stage calibration as shown in FIGS. 2A and 2B. Theinformation from the simple calibration is combined with the originalthree-stage calibration to update the player's calibration parameters.For example, the first calibration calculates the height and center ofthe player, and a second calibration is used to determine theapproximate location of the player.

FIG. 3A shows a bracelet, having a Radio-Frequency IDentification(RFID), which identifies the user to a controller, according to oneembodiment. RFID uses radio communication to exchange data between areader and an electronic tag attached to an object, for the purpose ofidentification and tracking. RFID involves interrogators (also known asreaders), and tags (also known as labels). Most RFID tags contain atleast two components. The first component is an integrated circuit forstoring information, processing information, modulating aradio-frequency (RF) signal, demodulating the RF signal, etc. The secondcomponent is an antenna for receiving and transmitting the signal.

There are three types of RFID tags: passive RFID tags, active RFID tags,and battery assisted passive (BAP) RFID tags. Passive RFID tags have nopower source and require an external electromagnetic field to initiate asignal transmission. Active RFID tags contain a battery and can transmitsignals once an external source (referred to as an interrogator) hasbeen successfully identified, and BAP RFID tags require an externalsource to wake up, but have a greater range. Some embodiments aredescribed below using passive RFID tags, but other types of RFID tagsmay be used.

In FIG. 3A, bracelet 306 has RFID tag 302, and controller 302 has RFIDreader 310. RFID reader 310 obtains the value of RFID tag 302 using RFIDtechniques, and transmits the tag value to the game console, which usesthe tag value to identify the player holding controller 302. In anotherembodiment, controller 302 holds a table of RFID tags and the usersassociated with each tag, and the user recognition process is performedat the controller. Controller 302 and the game console exchange the userinformation to adjust the calibration for the current user holding thecontroller. Tether 304 is used to safely attach controller 302 to thewrist of the player, which prevents accidental drops or throws ofcontroller 302.

In one embodiment, the game console performs a calibration procedure thefirst time each player holds the controller in a game session, such asthe calibration procedure described above with reference to FIGS. 2A-2C.Afterwards, each time the controller changes hands, assuming that allplayers are wearing a bracelet, the RFID tag is read and the calibrationvalues of the player associated with the tag are used to configure thegame or computer program executing in the console.

In another embodiment, information from the current player andinformation from the player that previously held the controller arecombined. For example, the game may assume that the new player will beplaying in the same physical space as the previous player, and the gameparameters maintained from the previous player may include, for example,angular direction and distance with reference to the camera for theplayer. On the other hand, some characteristics of the new player areconfigured in the game to adjust game parameters, which may includephysical aspects of the player (e.g., height and center), name, avatar,etc. In yet another embodiment, a quick calibration is performed eachtime a controller changes hands, as previously described.

The calibration parameters for a given user may be obtained with acombination of methods using parameters obtained during an initialcalibration of the user, parameters obtained during a short calibration,or parameters obtained when calibrating other users of the system.Therefore, it is possible to have a player begin a turn while playing agame without having to perform a new calibration, by using parametersobtained during the initial calibration, parameters associated theplayer playing the game previously, or by using an algorithm to estimatethe value of some parameters (e.g., one player has been playing on theleft side of the playing area, while a second player has been playing onthe right side of the playing area, such as every time they pass thecontroller, the system also changes the play area where the player isexpected to be).

Configuring the game for a player that just received the controller mayinclude one or more of setting physical characteristics for tracking(e.g., height and center for the player), retrieving game status for theplayer (e.g., score, game progress, lives left, avatar, voicesimulation, etc.), setting user parameters (e.g., age, sex, weight,photo, etc.), and any other user-related parameter that may beconfigurable in the game.

It is noted that not all players must have a bracelet to play the game.If a user does not have a bracelet, the game may use other forms ofidentification (see for example entering a signature with reference toFIG. 5, fingerprinting with reference to FIG. 6A, face recognition withreference to FIG. 7, etc.). In other embodiment, a user may be requiredto perform a calibration each time the player receives the controller ifno method of identification is available. Thus, different methods ofidentification can be used by different players, and the system does notrequire choosing a single method for all players while playing a game.

It is noted that the embodiment illustrated in FIG. 3 is exemplary.Other embodiments may utilize different communication technologies, suchas BlueeTooth, WiFi, infrared, ultrasound, etc., or a combinationthereof. Generally speaking, any wireless communication protocol, andany wireless signal handling technique can be used, including using morethan one communication type to exchange information. The embodimentillustrated in FIG. 3 should therefore not be interpreted to beexclusive or limiting, but rather exemplary or illustrative.Additionally, the embodiment of FIG. 3 has been described using abracelet, but the RFID tag can be present in any object that the user iswearing or carrying, such as a ring, a watch, a pair of glasses, aphone, a necklace, an earring, a glove, a hair clip, a card, a creditcard, a wallet, a button, a key chain, an item of clothing, etc.

The communication protocols described herein can include any number ofprotocols. The protocols can be defined by a single standard or bymultiple standards. In one embodiment, communication is performed usingcombined protocols. For instance, packets can be exchanged between thereceiving device and the transmitting device using one protocol or twoprotocols. The exchange of packets can also occur in an interleavedmanner, where one protocol communicates certain packets while anotherprotocol communicates other packets. In still another embodiment, someprotocols can be used to transmit packet identifiers, headers, footers,or security codes that identify a particular device as being appropriatefor a specific computing device. The packet identifiers or securitycodes can be encrypted, or interleaved between communication sessions orexchanges between the device and a computing system. In still anotherembodiment, the packets can be provided to identify user information andsession information which are stored in a database, either locally or ona server. The session information can be used to identify or validatethe registration of a particular device, such as a handheld device.

FIG. 3B shows a bracelet with a clip for attaching the bracelet to acontroller, in accordance with one embodiment. Clip 324 snaps on or offclip 326 attached to the controller via cord 322. In one embodiment, theconnection between clips 324 and 326 is only mechanical, allowing thebracelet to become part of the tether to safeguard accidental drop ofthe controller. In another embodiment, the connection to bracelet 320 ismechanical and electrical. Thus, bracelet 320 is in electricalcommunication with the controller and the controller can read a valuestored in the bracelet. This value can be stored in a memory, anelectronic circuit, etc.

As a player's turn comes up, the player snaps clip 324 to clip 326 andthe identification of the player takes place, via RFID, memory readoperation, or via any of the other identification methods describedherein. At the end of the player's turn, the player disconnects snap 324from snap 326.

FIG. 4 shows a player holding two controllers and wearing two bracelets,according to one embodiment. Player 408 is playing a game usingcontrollers 412 a and 412 b, each held in a different hand, and player408 is wearing bracelets 414 a and 414 b, one in each wrist. Aspreviously described, the system associates the user with a controllerbased on the bracelet near the controller.

In another embodiment, a user, holding two controllers, wears only asingle bracelet. For example, player 410 is waiting for a turn to playthe game, and Player 410 is wearing a single bracelet 414 c. When player410's turn comes up, the controllers are passed from player 408 to 410.The system then associates the two controllers with the single braceletand the single user. Sometimes, both controllers may be able to read theRFID tag in the bracelet (or in some other article carried by the user),but other times only one controller may be able to read the RFID tag. Inone embodiment, when only a single controller obtains the RFID tag, thesystem assumes that the same user is holding both controllers. Inanother embodiment, the system asks the user to bring both controllerstogether so the second controller can also read the RFID tag.

The information in the bracelet, (e.g., the RFID tag, memory contents,bar code) may also be used to retrieve user information, even the firsttime that the user plays a game in console 402, by retrievinginformation from a remote location, such as a remote server or othercomputing device in the network. Once console 402 retrieves the braceletinformation, console 402 checks if there is local information about auser associated with the bracelet information. In another embodiment,console 402 also checks for user information in user information server406, accessed via network 404, even if user information is found locallyin console 402.

If there is no local information about the user, but information isretrieved from information server 406, console 402 uses the retrievedinformation to configure the game for this user. For example, console402 may require a simplified calibration (or no calibration, asdescribed above) from this user after obtaining the user's physicalcharacteristics from the server. The program may also retrieve historyinformation for this user, such as user ranking, items collected in thegame, handicap, age, etc. The embodiment shown in FIG. 4 shows a userwith two bracelets, but users are not limited to one or two bracelets,as users can have many bracelets or articles carrying the userinformation. The system tracks all the items that are associated withthe single user. For example, the bracelets may be decorative and theuser may select a bracelet of a certain color to match her mood orclothing, or the user may decide to wear a ring or a pendant instead,etc. In one embodiment, the system includes an option to change the userassociated with the bracelet, in case the bracelet changes hands and adifferent user starts using the bracelet.

It is noted, that the profile information for the user can be globalinformation, which may be used by any console on the network, or localinformation, which is used solely by the console running the game. Oncethe user finishes playing, the profile information for the user can beupdated in information server 406, or can be updated locally in theconsole, or can be wiped out entirely.

FIG. 5 illustrates the mapping of a user to a controller using signaturerecognition, according to one embodiment. When users exchangecontrollers, the computer program uses signature recognition todetermine the identity of the new user holding the controller. In oneembodiment, the user aims the controller towards display 510 and movesthe controller in the air to generate signature 506. As the user movesthe controller in the air, the motion is replicated 508 in display 510.In other words, the user has the impression to be writing on the displayusing the controller, as if the controller were a writing instrument bypointing the controller towards the display.

In one embodiment, each user defines her own signature, and aninitialization process is created to enter the signature of each user inthe system. During play, each user enters her signature to identifyherself to the computer program. It is understood that the system allowsa certain amount of deviation in the signature, because humans will notenter a perfect signature each time.

In another embodiment, the system assigns each user a distinct geometricfigure (e.g., a circle, a square, a triangle, a cross, a diagonal line,a spiral, etc.), and then each user uses the assigned geometric figurewhen it is the user's turn to play.

FIGS. 6A-6B show two embodiments for identifying a user by herfingerprint. FIG. 6A depicts controller 62 with slide fingerprint reader604, and FIG. 6A shows controller 610 with optical fingerprint reader612. It is noted that the embodiments illustrated in FIGS. 6A and 6B areexemplary. Other embodiments may utilize different fingerprint sensorsand different techniques to capture fingerprints (e.g., camera,capacitance sensor, ultrasonic sensor, etc). The embodiments illustratedin FIGS. 6A and 6B should therefore not be interpreted to be exclusiveor limiting, but rather exemplary or illustrative.

When a player's turn comes up, the controller captures the player'sfingerprint and determines the player's identity. In one embodiment, thefingerprint information is sent from the controller to the game console,which uses a fingerprint recognition algorithm to determine if there isuser information for the captured fingerprint. In another embodiment,the fingerprint system in the controller includes memory and logic tostore fingerprints, and to determine if an input fingerprint correspondsto one of the fingerprints in the system. If a match is made, thecontroller sends the user information or identification to the gameconsole, instead of sending the fingerprint.

In another embodiment, the fingerprint information is used to determineif the player has access privileges to a feature of the computerprogram. For example, the game console will play a demo version of agame if the user has not purchased the game, but the game console willplay a full version of the game if the user has already purchased thegame. In another embodiment, the system determines if a user is one ofthe users with access to certain privilege. For example, a user may be amember of a family that has purchased a game, and any of the members ofthe family will be given access to the game when the system detects afingerprint from a family member.

FIG. 7 illustrates user identification utilizing face recognition,according to one embodiment. When using face recognition, an image orimages from camera 704 are analyzed to determine the user identity. Whenthe user's turn to play comes up, the image from camera 704 is analyzedto find a face near the controller. The face recognition program at thegame console analyzes the face to determine which of the players isholding the controller. In one embodiment, the player holds thecontroller 706 next to her face to perform the face recognitionoperation. Using the controller tracking system, the system identifiesthe location of the controller and analyzes the area near the controllerto find facial features. Once facial features are found, the facerecognition program will determine the identity of the user, if suchidentity exists in the system.

In another embodiment, face recognition is combined with calibration.For example, face recognition starts when the user is calibrating thecontroller, as seen in FIG. 2A. Since the user is holding the controllernext to the face, the system captures the image of the face and storesthe face image for later use in face recognition.

FIG. 8 shows the flowchart of an algorithm for identifying players usingRFID technology, in accordance with one embodiment of the invention. Inoperation 802, the controller detects an RFID tag situated near thecontroller. After reading the tag, the controller sends the tag to thegame console in operation 804. The game console checks, in operation806, if the received tag is in the database, that holds tag and userinformation. If the tag is in the database, the method proceeds tooperation 808, where the information of the user associated with the tagis retrieved from the database. If the tag is not in the database, themethod proceeds to operation 810, where a new entry is created in thedatabase for this tag. As the user captures user information (e.g., age,height, name), the database is updated with the captured information.

After operation 808 or 810, the method flows to operation 812 todetermine if a calibration is needed. If a calibration is needed, thecalibration is performed for the user, and the results of thecalibration saved on the database, in operation 814. After operation 812or 814, the method proceeds to operation 816, where the game is played.

While playing the game, the system periodically checks, in operation818, if a new RFID tag has been detected. If the new tag has not beendetected, the method returns to operation 816 to continue game play.However, if the new tag is detected, the method flows back to operation804.

FIG. 9 is a simplified schematic diagram of a computer system forimplementing embodiments of the present invention. FIG. 9 includescontroller 920 and bracelet 940. Although controllers defined within thespirit and scope of the claims may have more or less components, theseexemplary components show example electronics, hardware, firmware, andhousing structure to define an operable example. These examplecomponents, however, should not limit the claimed inventions, as more orfewer components are possible. With this in mind, the controllerincludes body 902 (that is hand-held) and spherical section 904, alsoreferred to herein as a ball. Body 902 is configured to provide a handleto operate controller 920 with a single hand. A user's second hand may,of course, be used to hold or select buttons on body 902. A user holdingcontroller 920 can provide input by pressing buttons, such as top button922 and bottom button 908, and by moving the controller within athree-dimensional space. Controller 920 is configured to operatewirelessly, which facilitates freedom of controller movement in order tointeract with the base station device. Wireless communication can beachieved in multiple ways, such as via Bluetooth® wireless link, WiFi,infrared (not shown) link, or visually by capturing images of the deviceby a camera attached to the base computing device.

Visual communication is enhanced by the relatively large ball 904 facingthe camera and that can be illuminated to improve visual recognition.Using a spherical section improves visual recognition as the ball isalways perceived as a circle (or partial circle) in a captured image,independent of the orientation of the controller. Ball 904 isilluminated by light emitting device 928. In one embodiment, lightemitting device 928 can emit light of a single color, and in anotherembodiment, light emitting device 28 can be configure to emit light froma choice of colors. In yet another embodiment, ball 904 includes severallight emitting devices, each device being capable of emitting light ofone color. Light emitting device 928 is configurable to emit differentlevels of brightness. In one embodiment, the light emitting device is anLED, which is situated at one end of the controller, such that if ball904 is deformed by user interaction, the deformation of ball 904 willnot cause damage on the LED. The base computing device can provideinteractivity to the user holding the controller by changing the lightemitting status of ball 904, producing audio signals, or withvibrotactile feedback, etc. One or a combination of these feedbackoperations are possible.

Inside body 902, printed circuit board 910 holds processor 924,Input/Output (I/O) module 926, memory 912, WiFi module (not shown), andBluetooth module 930, interconnected by bus 938. A Universal Serial Bus(USB) module 916 also provides interactivity with the base computingdevice, or other devices connected to USB port 936. The USB port canalso be used to charge the rechargeable battery 918. Vibrotactilefeedback is provided by vibrotactile module 920.

Note that the above controller configuration and methods of operationare exemplary and many modifications thereto, including reordering someelements and/or performing some operations in parallel, would occur to aperson of ordinary skill in the art with access to the presentSpecification, and is well within the scope of the claimed invention.For example, controller 920 can also include sensors for mechanicaltracking of the controller movement.

Bracelet 940 includes RFID tag 942. It is noted that some embodimentshave been presented for a bracelet with an RFID tag, where the braceletand the RFID are exemplary. Other embodiments may include the RFID tagin other articles worn or carried by a user, such as a ring, a watch, apair of glasses, a phone, a necklace, an earring, a glove, a hair clip,a card, a credit card, a wallet, a button, a key chain, an item ofclothing, etc. In addition, the information associated with the articleassociated with the user may be obtained utilizing other types ofwireless communication (e.g., as Bluetooth, WiFi), or obtained fromother type of media, such as a memory. The embodiments illustratedshould therefore not be interpreted to be exclusive or limiting, butrather exemplary or illustrative.

FIG. 10 shows the flowchart of an algorithm for configuring a computerprogram based on user, in accordance with one embodiment of theinvention. In operation 1002, an object carried by a user is detected,such as the bracelet 306 of FIG. 3A. The object includes a parametervalue (e.g., RFID tag, bits stored in memory, etc.) that uniquelyidentifies the object from a plurality of objects.

From operation 1002 the method proceeds to operation 1004, where theparameter value is transmitted to a computing device executing acomputer program (e.g., gaming console 102 of FIG. 1). In operation1006, a check is performed to determine if there is user information inthe computer program associated with the parameter value. If there isuser information for the parameter value, the computer program isconfigured utilizing the user information.

FIG. 11 illustrates hardware and user interfaces that may be used toidentify users, in accordance with one embodiment of the presentinvention. FIG. 11 schematically illustrates the overall systemarchitecture of the Sony® Playstation 3® entertainment device. A systemunit 1400 is provided, with various peripheral devices connectable tothe system unit 1400. The system unit 1400 comprises: a Cell processor1428; a Rambus® dynamic random access memory (XDRAM) unit 1426; aReality Synthesizer graphics unit 1430 with a dedicated video randomaccess memory (VRAM) unit 1432; and an I/O bridge 1434. The system unit1400 also comprises a Blu Ray® Disk BD-ROM® optical disk reader 1440 forreading from a disk 1440 a and a removable slot-in hard disk drive (HDD)1436, accessible through the I/0 bridge 1434. Optionally the system unit1400 also comprises a memory card reader 1438 for reading compact flashmemory cards, Memory Stick® memory cards and the like, which issimilarly accessible through the I/O bridge 1434.

The I/O bridge 1434 also connects to six Universal Serial Bus (USB) 2.0ports 1424; a gigabit Ethernet port 1422; an IEEE 802.11b/g wirelessnetwork (Wi-Fi) port 1420; and a Bluetooth® wireless link port 1418capable of supporting of up to seven Bluetooth connections.

In operation, the I/O bridge 1434 handles all wireless, USB and Ethernetdata, including data from one or more game controllers 1402-1403. Forexample when a user is playing a game, the I/O bridge 1434 receives datafrom the game controller 1402-1403 via a Bluetooth link and directs itto the Cell processor 1428, which updates the current state of the gameaccordingly.

The wireless, USB and Ethernet ports also provide connectivity for otherperipheral devices in addition to game controllers 1402-1403, such as: aremote control 1404; a keyboard 1406; a mouse 1408; a portableentertainment device 1410 such as a Sony Playstation Portable®entertainment device; a video camera such as an EyeToy® video camera1412; a microphone headset 1414; and a microphone 1415. Such peripheraldevices may therefore in principle be connected to the system unit 1400wirelessly; for example the portable entertainment device 1410 maycommunicate via a Wi-Fi ad-hoc connection, whilst the microphone headset1414 may communicate via a Bluetooth link.

The provision of these interfaces means that the Playstation 3 device isalso potentially compatible with other peripheral devices such asdigital video recorders (DVRs), set-top boxes, digital cameras, portablemedia players, Voice over Internet Protocol (IP) telephones, mobiletelephones, printers and scanners. In addition, a legacy memory cardreader 1416 may be connected to the system unit via a USB port 1424,enabling the reading of memory cards 1448 of the kind used by thePlaystation® or Playstation 2® devices.

The game controllers 1402-1403 are operable to communicate wirelesslywith the system unit 1400 via the Bluetooth link, or to be connected toa USB port, thereby also providing power by which to charge the batteryof the game controllers 1402-1403. Game controllers 1402-1403 can alsoinclude memory, a processor, a memory card reader, permanent memory suchas flash memory, light emitters such as an illuminated sphericalsection, LEDs, or infrared lights, microphone and speaker for ultrasoundcommunications, an acoustic chamber, a digital camera, an internalclock, a recognizable shape facing the game console, and wirelesscommunications using protocols such as Bluetooth®, WiFi™, etc. Therecognizable shape can be in a shape substantially of a sphere, a cube,parallelogram, a rectangular parallelepiped, a cone, a pyramid, animperfect sphere, a soccer ball, a football or rugby ball, an imperfectsphere, a section of a sphere, a truncated pyramid, a truncated cone, abaseball bat, a truncated cube, a polyhedron, a star, etc., or acombination of two of more of these shapes.

Game controller 1402 is a controller designed to be used with two hands,and game controller 1403 is a single-hand controller with a ballattachment. In addition to one or more analog joysticks and conventionalcontrol buttons, the game controller is susceptible to three-dimensionallocation determination. Consequently gestures and movements by the userof the game controller may be translated as inputs to a game in additionto or instead of conventional button or joystick commands. Optionally,other wirelessly enabled peripheral devices such as the Playstation™Portable device may be used as a controller. In the case of thePlaystation™ Portable device, additional game or control information(for example, control instructions or number of lives) may be providedon the screen of the device. Other alternative or supplementary controldevices may also be used, such as a dance mat (not shown), a light gun(not shown), a steering wheel and pedals (not shown) or bespokecontrollers, such as a single or several large buttons for arapid-response quiz game (also not shown).

The remote control 1404 is also operable to communicate wirelessly withthe system unit 1400 via a Bluetooth link. The remote control 1404comprises controls suitable for the operation of the Blu Ray™ DiskBD-ROM reader 1440 and for the navigation of disk content.

The Blu Ray™ Disk BD-ROM reader 1440 is operable to read CD-ROMscompatible with the Playstation and PlayStation 2 devices, in additionto conventional pre-recorded and recordable CDs, and so-called SuperAudio CDs. The reader 1440 is also operable to read DVD-ROMs compatiblewith the Playstation 2 and PlayStation 3 devices, in addition toconventional pre-recorded and recordable DVDs. The reader 1440 isfurther operable to read BD-ROMs compatible with the Playstation 3device, as well as conventional pre-recorded and recordable Blu-RayDisks.

The system unit 1400 is operable to supply audio and video, eithergenerated or decoded by the Playstation 3 device via the RealitySynthesizer graphics unit 1430, through audio and video connectors to adisplay and sound output device 1442 such as a monitor or television sethaving a display 1444 and one or more loudspeakers 1446. The audioconnectors 1450 may include conventional analogue and digital outputswhilst the video connectors 1452 may variously include component video,S-video, composite video and one or more High Definition MultimediaInterface (HDMI) outputs. Consequently, video output may be in formatssuch as PAL or NTSC, or in 720p, 1080i or 1080p high definition.

Audio processing (generation, decoding and so on) is performed by theCell processor 1428. The Playstation 3 device's operating systemsupports Dolby® 5.1 surround sound, Dolby® Theatre Surround (DTS), andthe decoding of 7.1 surround sound from Blu-Ray® disks.

In the present embodiment, the video camera 1412 comprises a singlecharge coupled device (CCD), an LED indicator, and hardware-basedreal-time data compression and encoding apparatus so that compressedvideo data may be transmitted in an appropriate format such as anintra-image based MPEG (motion picture expert group) standard fordecoding by the system unit 1400. The camera LED indicator is arrangedto illuminate in response to appropriate control data from the systemunit 1400, for example to signify adverse lighting conditions.Embodiments of the video camera 1412 may variously connect to the systemunit 1400 via a USB, Bluetooth or Wi-Fi communication port. Embodimentsof the video camera may include one or more associated microphones andalso be capable of transmitting audio data. In embodiments of the videocamera, the CCD may have a resolution suitable for high-definition videocapture. In use, images captured by the video camera may for example beincorporated within a game or interpreted as game control inputs. Inanother embodiment the camera is an infrared camera suitable fordetecting infrared light.

In general, in order for successful data communication to occur with aperipheral device such as a video camera or remote control via one ofthe communication ports of the system unit 1400, an appropriate piece ofsoftware such as a device driver should be provided. Device drivertechnology is well-known and will not be described in detail here,except to say that the skilled man will be aware that a device driver orsimilar software interface may be required in the present embodimentdescribed.

Embodiments of the present invention may be practiced with variouscomputer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers and the like. Theinvention can also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a network.

With the above embodiments in mind, it should be understood that theinvention can employ various computer-implemented operations involvingdata stored in computer systems. These operations are those requiringphysical manipulation of physical quantities. Any of the operationsdescribed herein that form part of the invention are useful machineoperations. The invention also relates to a device or an apparatus forperforming these operations. The apparatus may be specially constructedfor the required purpose, such as a special purpose computer. Whendefined as a special purpose computer, the computer can also performother processing, program execution or routines that are not part of thespecial purpose, while still being capable of operating for the specialpurpose. Alternatively, the operations may be processed by a generalpurpose computer selectively activated or configured by one or morecomputer programs stored in the computer memory, cache, or obtained overa network. When data is obtained over a network the data maybe processedby other computers on the network, e.g., a cloud of computing resources.

One or more embodiments of the present invention can also be fabricatedas computer readable code on a computer readable medium. The computerreadable medium is any data storage device that can store data, whichcan be thereafter be read by a computer system. Examples of the computerreadable medium include hard drives, network attached storage (NAS),read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetictapes and other optical and non-optical data storage devices. Thecomputer readable medium can include computer readable tangible mediumdistributed over a network-coupled computer system so that the computerreadable code is stored and executed in a distributed fashion.

Although the method operations were described in a specific order, itshould be understood that other housekeeping operations may be performedin between operations, or operations may be adjusted so that they occurat slightly different times, or may be distributed in a system whichallows the occurrence of the processing operations at various intervalsassociated with the processing, as long as the processing of the overlayoperations are performed in the desired way.

Although the foregoing invention has been described in some detail forpurposes of clarity of understanding, it will be apparent that certainchanges and modifications can be practiced within the scope of theappended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalents of the appended claims.

1. A method for configuring a computer program based on user, the methodcomprising: detecting by a controller an object carried by a user, theobject including a parameter value that uniquely identifies the objectfrom a plurality of objects; transmitting the parameter value to acomputing device executing the computer program; determining if thecomputer program has user information associated with the parametervalue; and configuring the computer program utilizing the userinformation when the computer program has the user information for theparameter value.
 2. The method as recited in claim 1, wherein detectingincludes: using radio-frequency identification (RFID) to obtain theparameter value, wherein the object includes an electronic tabassociated with the parameter value.
 3. The method as recited in claim1, wherein the object is selected from a group consisting of a bracelet,a ring, a watch, a pair of glasses, a phone, a necklace, an earring, aglove, a hair clip, a card, a credit card, a wallet, a button, or anitem of clothing.
 4. The method as recited in claim 1, whereinconfiguring the computer program includes: setting a new calibration fora controller in a location tracking system based on the user informationwithout the user performing new calibrating operations.
 5. The method asrecited in claim 4, wherein calibrating includes: setting a value in thecomputer program for a size of the user.
 6. The method as recited inclaim 1, further including: performing a calibrating operation for theuser when the computer program does not have the user information. 7.The method as recited in claim 1, wherein determining if the computerprogram has user information further includes: searching for the userinformation in local storage of the computing device; and searching forthe user information in a remote location when the local storage doesnot have the user information.
 8. The method as recited in claim 7,further including: utilizing the parameter value from the object to playa computer game in one of a plurality of game consoles.
 9. The method asrecited in claim 1, further including: determining if the user belongsto a group of users based on the user information; and giving the useraccess to features of the computer program that are available to thegroup of users.
 10. The method as recited in claim 1, wherein thecomputer program is embedded in a non-transitory computer-readablestorage medium.
 11. A method for configuring a computer program based onuser, the method comprising: reading by a controller a fingerprint of auser; transmitting the fingerprint to a computing device executing thecomputer program; determining if the computer program has userinformation associated with the fingerprint; and configuring thecomputer program utilizing the user information when the computerprogram has the user information for the fingerprint.
 12. The method asrecited in claim 11, wherein configuring the computer program includes:setting a new calibration for a controller in a location tracking systembased on the user information without the user performing newcalibrating operations; and setting a value for a height of the user inthe computer program.
 13. The method as recited in claim 12, furtherincluding: setting a value for a user playing area in the computerprogram based on the value of the user playing area associated withother users.
 14. The method as recited in claim 11, wherein the computerprogram is embedded in a non-transitory computer-readable storagemedium.
 15. A method for configuring a computer program based on user,the method comprising: entering a signature detection mode by thecomputer program; detecting a signature entered by the user, thesignature entered by moving a controller held by the user; exiting thesignature detection mode; determining if the computer program has userinformation associated with the signature entered by the user; andsetting a new calibration for the controller in the computer programbased on the user information when the computer program has the userinformation for the signature entered by the user.
 16. The method asrecited in claim 15, wherein setting a calibration for the controllerincludes: setting the new calibration for the controller without theuser performing new calibrating operations.
 17. The method as recited inclaim 16, wherein setting the calibration for the controller includes:setting a value for a size of the user in the computer program.
 18. Themethod as recited in claim 15, wherein the computer program is embeddedin a non-transitory computer-readable storage medium.
 19. A controllerfor configuring a computer program based on user, the controllerincluding: a radio-frequency identification (RFID) reader operable todetect an RFID tag in an object carried by a user, the RFID tag uniquelyidentifying the object from a plurality of objects; a memory; and aprocessor operable to transmit the RFID tag to a computing deviceexecuting the computer program, wherein the computer program is operableto search for user information associated with the RFID tag, and whereinthe computer program is configured utilizing the user information whenthe search obtains the user information associated with the RFID tag.20. The controller of claim 19, wherein the object is selected from agroup consisting of a bracelet, a ring, a watch, a pair of glasses, aphone, a necklace, an earring, a glove, a hair clip, a card, a creditcard, a wallet, a button, and an item of clothing.
 21. The controller ofclaim 19, wherein the computer program is configured again after theRFID reader detects a new RFID tag.
 22. The controller of claim 19,wherein the search for user information includes: searching for the userinformation in local storage in the computing device; and searching forthe user information in a remote server when the local storage does nothave the user information.